import { takeEvery, put, delay } from 'redux-saga/effects'
import { show, show_async_saga_test } from '../actions/modal.actions'
import { SHOWMODAL_ASYNC } from '../const/modal.const'
// takeEvery 接收action
// put 触发action

function* show_async_fn() {
  yield delay(2000) // 这里不能使用setTimeout来实现延时操作
  yield put(show())
}

export default function* modalSaga() {
  // 接收action
  // 注意takeEvery函数的第一个个参数要求我们接收一个action的类型字符串，而不是action creator函数
  // 不然会有问题，虽然当前这个例子好像看不出来有什么不正常的
  // yield takeEvery(show_async_saga_test, show_async_fn)
  yield takeEvery(SHOWMODAL_ASYNC, show_async_fn)
}